package ch.uzh.ifi.seal.ssqa.storage;

import java.util.Collection;

import org.eclipse.emf.ecore.EObject;

public interface IStorage {
	
	public void initDataStore();
	
	public void closeDataStore();
	
	public boolean isInitialized();

	public void saveEntity(EObject object);
	
	public void saveOrUpdateEntity(Collection<? extends EObject> list);
	
	public void saveOrUpdateEntity(EObject object);
	
	public void deleteEntity(EObject object);
	
	public StorageResult executeListQuery(String queryString);
	
	public StorageResult executeUniqueQuery(String queryString);
	
	public StorageResult executeListSQLQuery(String queryString);
	
	public StorageResult executeUniqueSQLQuery(String queryString);
	
	public void createNewModelDB();
}
